package com.walker.kuyun

import android.app.Application
import android.app.Dialog
import android.content.Intent
import android.util.Log
import android.widget.PopupWindow
import com.liulishuo.filedownloader.FileDownloader
import com.scwang.smart.refresh.footer.BallPulseFooter
import com.scwang.smart.refresh.header.MaterialHeader
import com.scwang.smart.refresh.layout.SmartRefreshLayout
import com.shuyu.gsyvideoplayer.player.PlayerFactory

import com.walker.kuyun.util.JsoupUtil
import com.walker.kuyun.util.Util.getResColor
import com.walker.kuyun.util.Util.setNightMode
import com.walker.kuyun.viewmodel.PlayViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import tv.danmaku.ijk.media.exo2.Exo2PlayerManager
import java.util.*


class App : Application() {

    companion object {
        private lateinit var app: App
        fun getApp() = app
    }

    override fun onCreate() {
        super.onCreate()
        app = this
        initSDK()
    }

    private fun initSDK() {
        // 防止内存泄漏
        //.defaultBitmapConfig(Bitmap.Config.RGB_565) // 设置全局的图片样式
        // 设置全局默认配置（优先级最低，会被其他设置覆盖）
        SmartRefreshLayout.setDefaultRefreshInitializer { context, layout -> //开始设置全局的基本参数（可以被下面的DefaultRefreshHeaderCreator覆盖）
            layout.setReboundDuration(150)
            layout.setFooterHeight(100f)
            layout.setHeaderTriggerRate(0.5f)
            layout.setDisableContentWhenLoading(false)
            layout.setPrimaryColorsId(R.color.main_color_3)
        }

        // 全局设置默认的 Header
        SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, layout -> //开始设置全局的基本参数（这里设置的属性只跟下面的MaterialHeader绑定，其他Header不会生效，能覆盖DefaultRefreshInitializer的属性和Xml设置的属性）
            layout.setEnableHeaderTranslationContent(true)
                .setHeaderHeight(70f)
                .setDragRate(0.6f)
            MaterialHeader(context).setColorSchemeResources(R.color.main_color)
                .setShowBezierWave(true)
        }

        SmartRefreshLayout.setDefaultRefreshFooterCreator { context, layout ->
            layout.setEnableFooterTranslationContent(true)
            BallPulseFooter(context).setAnimatingColor(
                context.getResColor(R.color.foreground_main_color_2)
            )
        }

        // Crash提示
//        CrashHandler.getInstance(this)

        // Bugly APP ID
//        CrashReport.initCrashReport(applicationContext, BuildConfig.BUGLY_APP_ID, true)

        // 友盟
        // 初始化组件化基础库, 所有友盟业务SDK都必须调用此初始化接口。
//        UMConfigure.init(
//            this,
//            BuildConfig.UM_APP_KEY,
//            "Github",
//            UMConfigure.DEVICE_TYPE_PHONE,
//            null
//        )
        // 选择AUTO页面采集模式，统计SDK基础指标无需手动埋点可自动采集。
//        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO)

        FileDownloader.setup(this)

        //EXOPlayer内核，支持格式更多   加载速度相对ijkplayer和mediaplayer较快
        PlayerFactory.setPlayManager(Exo2PlayerManager::class.java)

        // 夜间模式
        setNightMode()

    }
}